using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using Ltf.Remoting.Settings;
using Ltf.Remoting.TeamFoundation;

namespace Ltf.Remoting.TFAccess
{
	public enum DifItemType
	{
		Any,
		Folder,
		File
	}

	public interface IDifRepository
	{
		void PrepCache(string fsPath);

		bool FolderExists(string path);

		bool FileExists(string path);

		bool FileOrFolderExists(string path);

		IEnumerable<string> GetFolderItems(string path, DifItemType itemType);

		Stream GetFileItemStream(string path);

		int GetFileChecksum(string path);


		bool LastItemHasPotentialConflict{ get;}

		int GetQuickItemCount(TFSettings settings, string path);

		string GetVersionQualifiedPath(string path);

	}
}
